package xhwl.hmo.mall.wxapi;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;

import de.greenrobot.event.EventBus;
import xhwl.android.pay.common.Constants;
import xhwl.android.pay.invoke.PaymentResult;
import xhwl.hmo.mall.R;
import xhwl.hmo.mall.utils.SpUtil;
import xhwl.hmo.mall.utils.StringUtil;
import xhwl.hmo.mall.utils.ToastUtil;
import xhwl.hmo.mall.utils.XHLog;

/**
 * 微信支付结果回调界面，必须放在应用包名/wxapi/
 */
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
	private static final String TAG = "MicroMsg.SDKSample.WXPayEntryActivity";

	private IWXAPI api;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// setContentView(R.layout.pay_result);

		api = WXAPIFactory.createWXAPI(this, Constants.APP_ID);

		api.handleIntent(getIntent(), this);
	}

	@Override
	protected void onNewIntent(Intent intent) {
		super.onNewIntent(intent);
		setIntent(intent);
		api.handleIntent(intent, this);
	}

	@Override
	public void onReq(BaseReq req) {
	}

	@Override
	public void onResp(BaseResp resp) {
		XHLog.d("onPayFinish, errCode = " + resp.errCode);
		// 0 成功 展示成功页面
		// -1 错误 可能的原因：签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
		// -2 用户取消 无需处理。发生场景：用户不支付了，点击取消，返回APP。
		String result="";
		switch (resp.errCode) {
			case BaseResp.ErrCode.ERR_OK:
				String orderNo = SpUtil.getString(SpUtil.ORDER_NO,"");
				EventBus.getDefault().post(new PaymentResult(orderNo,true, ""));
				finish();
				break;
			case BaseResp.ErrCode.ERR_USER_CANCEL:
				result = getString(R.string.errcode_cancel);
				break;
			case BaseResp.ErrCode.ERR_AUTH_DENIED:
				result = getString(R.string.errcode_deny);
				break;
			default:
				result = getString(R.string.errcode_unknown);
				break;
		}
		if(!StringUtil.isEmpty(result)){
			ToastUtil.showToast(this,result);
			finish();
		}

	}
}
